from basic.entiys.charts.Authority import Authority, EnumMethodType
from framework.Singleton import Singleton


class SlaveAuth(Authority, metaclass=Singleton):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)



class PrisonerAuth(Authority, metaclass=Singleton):
    ...


class CivilianAuth(Authority, metaclass=Singleton):
    def __init__(self, *args, **kwargs):
        ...


class MagistrateAuth(Authority, metaclass=Singleton):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.AuthorityMapper[EnumMethodType.manager_jail].append("囚禁")


class JunKuSiAuth(Authority, metaclass=Singleton):
    ...


class JinMinSiAuth(Authority, metaclass=Singleton):
    ...


class TianQuanAuth(Authority, metaclass=Singleton):
    ...


class HanLinAuth(Authority, metaclass=Singleton):
    ...


class LordAuth(Authority, metaclass=Singleton):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.AuthorityMapper[EnumMethodType.manager_power].append("退位")
        self.AuthorityMapper[EnumMethodType.manager_power].append("朝会")


export = {
    "SlaveAuth": "%/auth.SlaveAuth",
    "PrisonerAuth": "%/auth.PrisonerAuth",
    "CivilianAuth": "%/auth.CivilianAuth",
    "MagistrateAuth": "%/auth.MagistrateAuth",
    "JunKuSiAuth": "%/auth.JunKuSiAuth",
    "JinMinSiAuth": "%/auth.JinMinSiAuth",
    "TianQuanAuth": "%/auth.TianQuanAuth",
    "HanLinAuth": "%/auth.HanLinAuth",
    "LordAuth": "%/auth.LordAuth",
}
